Theorem proving for functional programmers Sparkle: a functional theorem prover

نویسندگان

  • Maarten de Mol
  • Marko van Eekelen
  • Rinus Plasmeijer
چکیده

Sparkle is a new theorem prover written and specialized in the functional programming language Clean. It is in the first place intended to be used by programmers on small parts of Clean-programs, combining theorem proving and programming into one process. It should of course also be usable by logicians interested in proving properties of larger programs. This paper presents an example proof about a small Clean-program. It will be shown that building this proof in Sparkle is very easy and will require little effort from Clean-programmers. The most important features of Sparkle will be illustrated. Two features in particular are helpful for programmers. Firstly, Sparkle is integrated in Clean and has a semantics based on lazy graph-rewriting. This allows the reasoning to take place on the program itself, rather than on a translated version which uses different concepts. Secondly, Sparkle supports automated reasoning. Trivial goals will automatically be discarded and suggestions will be given on more difficult goals.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Sparkle: a functional theorem prover

Sparkle is a new theorem prover written and specialized in the functional programming language Clean. It is in the first place intended to be used by programmers on small parts of Clean-programs, combining theorem proving and programming into one process. It should of course also be usable by logicians interested in proving properties of larger programs. This paper presents an example proof abo...

متن کامل

Defining and Proving Invariants of Clean Programs

In a pure functional language like Clean the variables represent constant values; variables do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in those that use IO) a series of values computed from one another can be considered as different states of the same “abstract object”. ...

متن کامل

Verifying invariants of abstract functional objects — a case study ∗

In a pure functional language like Clean the values of the functional variables are constants; variables of functional programs do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in ones that use IO) we would like to consider a series of values computed from each other as differ...

متن کامل

Extending the Sparkle Core language with object abstraction

Sparkle is a theorem prover specially constructed for the functional programming language Clean. In a pure functional language like Clean the values of the functional variables are constants; variables of functional programs do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in ...

متن کامل

Proving composed specifications of clean programs in Sparkle - T ∗

An important class of software systems uses mobile components: components that are downloaded through the network and integrated into a running application. Clean Dynamics can be used for implementing mobile code in a functional programming language. Our goal is to support the verification of correctness of such applications. The correctness of these applications depend on the properties of the...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008